关闭Windows Defender与性能提升测试 您所在的位置:网站首页 为啥禁用 Windows Defender 后反而变卡了 关闭Windows Defender与性能提升测试

关闭Windows Defender与性能提升测试

2024-06-15 14:31| 来源: 网络整理| 查看: 265

如果在跑程序时观察过任务管理器,有时会发现占用cpu最高的除了自己运行的程序,还有一个进程叫“Antimalware Service Executable”,程序名为MsMpEng.exe。顾名思义,这是防病毒程序。这个程序是在有文件写入硬盘时进行的实时扫描保护程序。

虽然看起来cpu占用率极高,但其实并没有占那么多,具体原因还没调查过,不过使用process explorer(https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer)看详细数据的话MsMpEng虽然占了不少cpu但没有显示的那么多。那么它对于程序的性能影响有多大呢?

这个程序是只有在有写入可疑(可执行?)文件时会运行,所以对于cinebench等基本纯计算的程序是没有影响的,而对于有大量可执行文件输出的程序就会有比较严重的影响,比如编译任务。增加运行时间事情是小,但对于笔记本等设备来说多耗的计算就是多耗电,也是令人非常头疼的事情。这里就把WSL编译Linux作为测试程序来测试一下它的性能影响。WSL的纯计算性能与实机Linux基本没有区别(Windows的纯计算性能和Linux也没啥区别),而涉及IO的性能就非常难看。Windows的IO性能也由于各种安全检查和繁琐功能等原因远弱于Linux,这也算是为了用户友好的妥协(Linux的文件系统与内存管理作为桌面系统就是场灾难)。这个原因也是为什么微软要推WSL2来解决WSL的IO性能过弱的原因(不过WSL2的计算性能就要弱于WSL1)。顺便一提以后的Win10 19008版看评测结果IO性能有了大幅提高。

虽然关闭防病毒能提高性能,但如果对自己的计算机能力没有十足信心或是需要经常使用外来程序的请不要采取此措施。

测试测了两台机器,cpu和硬盘分别是:i5-8600k、860evo和i9-7960X、960evo。系统均为Win 10 Pro 1903(18362),使用默认Ubuntu WSL。编译今天GitHub上下载下来的linux-master,编译选项为make menuconfig默认,使用time计时。

Windows Defender测了3种设置:默认,关闭实时保护(即MsMpEng),以及完全关闭Windows Defender的防病毒组件。

关闭实时保护方法为设置-更新与安全-Windows安全-病毒与威胁保护-病毒与威胁保护设置-管理设置-实时保护关闭(用的英文系统,不知道具体是不是这个翻译)。关闭这个就足够关闭MsMpEng了不需要完全关闭defender。

完全关闭Windows defender方法为Win+R-gpedit.msc-Computer Configuration-Administrative Templates-Windows Components-Windows Defender Antivirus-Turn off Windows Defender Antivirus-Enable然后确定。

i5机器上默认情况下测试结果:

关闭实时防护:

完全关闭:

real是实际运行时间,user和sys加起来是多核cpu总运行时间之和。结果表现不错:关闭实时防护减少了12%时间或是实时防护增加了15%时间,完全关闭减少了16%时间或者打开增加了19%时间。注意两点:一是程序运行时间当然是会有浮动的,但同样工作总计算量肯定是一样的,所以通常real时间更短的话user+sys时间会更长,因为并行计算的时间更长了,而在这三组测试中real和user+sys时间均明显缩短,说明确实是节省了这么多算力而不是误差。二是程序由于缓存是会越运行越快的,所以这个测试做的并不会很准确。经过反复测试发现关闭保护时结果浮动幅度较小,而打开实时防护浮动时结果很大多次运行后比早期运行快了可达20s,所以初次运行的话关闭实时防护提升幅度可能会更大。

i5上表现不错,那i9呢?默认结果:

关闭实时防护:

完全关闭:

表现的差距就相当小了只有约6%。原因是实时防护的扫描并不会使计算时间更长,编译时也不会时刻需要全部32线程做计算和读写,因此在资源足够充足(i9+nvme)的情况下并不会带来太大损失。而在i5上,核心数少且没有超线程,会导致扫描程序频繁抢占(调度)编译程序的资源(cpu和硬盘),导致损失相对很大。加上不具备超线程更加剧了cpu被抢占后编译的进程被stall无法预读数据,猜测如果6核有超线程的话损失会小很多,这也是为什么超线程无用论的说法很蠢。

当然即使关闭了防护性能相比原生Linux还是差了不少。下图是phoronix做的测试,环境7960X+256GB Intel NVMe SSD。编译选项不同所以数据上不一样。即使关闭Windows defender估计也顶多仅在80-90s。

安全防护和系统性能总是需要妥协的两方面,系统上安全问题一定是会增强的,随之而来的就是性能上很可能会下降。所有系统都是如此。如何选择需要根据每个人的能力与需求而定,并不推荐所有人关闭各类安全功能。

Linux平均性能的逐版下降

除了MsMpEng以外还有一些常见的任务管理器中让人看不明白的CPU占用大户,有时间另外整理写一下。

另外一提我是很讨厌整天在意各种Meltdown和Spectre等不切实际而损失惨重的安全漏洞,我也是各类mitigation全部关闭的,不过测试看下来关不关性能影响都不大,影响最大的还是当年Meltdown时的主板微码更新。如果想要用新BIOS就一定要用新的微码带来的性能损失。不想损失的可以用旧BIOS,有能力的也可以自己修改新BIOS的模块来使用旧微码。不过技嘉的垃圾BIOS水平我是不打算改了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有